Random number generators are used in a variety of different applications, such as games of chance, including electronic casino games and slot machines; statistical analysis and sampling methods such as the bootstrap method or Monte Carlo methods; computer simulations of physical phenomena such as neutron transport, population genetics, the behavior of sub-atomic particles, or the tossing of a coin; and a variety of cryptographic techniques.
However, many computer-implemented random number generators are not true random number generators, but are rather pseudo-random number generators (PRNG). PRNGs do not generate strings of numbers that are actually random. Rather, the numbers generated by a PRNG are generally based on one or more initial conditions or variables that are constant and unvarying for each random number generated. The numbers generated by a PRNG are not truly random, and will eventually begin to repeat if enough random numbers are generated. The length of the individual sequence of numbers depends on the constant initial conditions and variables.
Thus, improved random number generators are needed that utilize actual randomness and are based in part on actual non-deterministic properties, phenomena, or events that are continuously changing for each random number that is generated. These improved random number generators thus increase the degree of randomness in any computer-implemented application for which random numbers are needed, which can increases the accuracy and authenticity of the application. Also needed are improved procedures to utilize these improved random number generators.